package com.yunji.order.dao;

import com.yunji.common.base.IBaseDao;
import com.yunji.order.bo.*;
import com.yunji.order.domain.OrderDO;
import com.yunji.order.dto.OrderPageDTO;
import com.yunji.product.bo.ProductOrderBO;

import java.util.List;

/**
 * @author : peter-zhu
 * @date : 2024/11/30 11:42
 * @description : TODO
 **/
public interface IOrderDao extends IBaseDao<OrderDO> {
    boolean existsOrder(ExistsOrderBO existsOrderBO);

    OrderDO getOrderByCode(String orderCode);

    boolean existsQrcodeOrder(GetOrderQrcodeBO bo);

    List<OrderDO> searchOrderStatus(List<Integer> list);

    List<OrderDO> listScaleOrder(ListScaleOrderBO bo);

    boolean updateOrderStatus(OrderModifyStatusBO orderStatus);

    List<OrderDO> listDeliveryOrder(ListDeliveryOrderBO bo);

    List<OrderDO> orderPage(OrderPageDTO param);

    boolean existsBySiteIds(List<Long> siteIds);

    List<OrderDO> orderListByMember(ListOrderMemberBO memberBO);

    Long getOrderIdByQrcode(GetOrderQrcodeBO bo);

    Integer countProductOrderSale(ProductOrderBO bo);

    Long getOrderId(ExistsOrderBO build);
}
